#include "Component.h"

void ConcreteComponentA::Accept(ConcreteVisitor1 *visitor) const {
    visitor->VisitConcreteComponentA(this);
}
std::string ConcreteComponentA::ExclusiveMethodOfConcreteComponentA() const {
    return "A";
}

void ConcreteComponentB::Accept(ConcreteVisitor2 *visitor) const {
    visitor->VisitConcreteComponentB(this);
}
std::string ConcreteComponentB::SpecialMethodOfConcreteComponentB() const {
    return "B";
}